# List 列表
# 1.列表的元素可以是任意类型
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
data_list_2 = ['Mysql', [1, 2, 3], 'Java']
print(data_list_2)

# 2.列表的索引 ：索引从0开始，或者以负索引访问,表示从列表末尾开始访问，从-1开始
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
print(data_list[0])
print(data_list[-1])

# 3.可以使用+将多个列表进行连接合并
data_list_1 = ['Mysql', 'Html']
data_list_2 = ['Java', 'Python']
data_list_3 = ['Hadoop', 'Linux']
print(data_list_1 + data_list_2 + data_list_3)

# 4.列表是可变的，可以更新列表的元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
data_list[1] = 'JAVA'
print(data_list)

# 5.列表的操作
# 5.1 修改

# 5.2 切片
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
print(data_list[0:3])
print(data_list[3:])

# 切片的参数 list[x:y:z] ,其中x指起始索引，y指结束索引，z指步幅
data_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(data_list[0:9:3])
print(data_list[::2])

# 5.3 删除，使用del语句，通过索引删除指定元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
del data_list[0]
print(data_list)

# 6.列表的内置方法
# 6.1 list.append(),在列表末尾添加元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
data_list.append('HBase')
print(data_list)

# 6.2 list.insert(index,item),在指定索引添加元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
data_list.insert(1, 'Bootstrap')
print(data_list)

# 6.3 list.extends(),组合多个列表
data_list_1 = ['Mysql', 'Java']
data_list_2 = ['Hadoop', 'Python']
data_list_1.extend(data_list_2)
print(data_list_1)
print(data_list_2)

# 6.4 list.remove(item),删除指定元素
# 6.3 list.extends(),组合多个列表
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
data_list.remove('Java')
print(data_list)

# 6.5 list.pop(),从列表中返回给定索引位置的元素, 然后删除该元素;如果不指定索引 , 则将返回并删除最后一个元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop']
item = data_list.pop(1)
print(item)
print(data_list)

# 6.6 list.index(),返回元素的索引
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase']
print(data_list.index('Python'))

# 6.7 list.copy(),复制列表
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase']
data_list_copy = data_list.copy()
print(data_list_copy)

# 6.8 list.reverse(),列表元素倒序（会修改原来的列表）
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase']
data_list.reverse()
print(data_list)

# 6.9 list.count(item),计算item元素在列表出现的次数
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase', 'Java', 'Java', 'Java', 'Java']
print(data_list.count('Java'))

# 6.10 list.sort(),对列表元素排序（会修改原来的列表）
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase']
data_list.sort()
print(data_list)

# 6.11 list.clear(),清空列表元素
data_list = ['Mysql', 'Java', 'Html', 'Python', 'Hadoop', 'HBase']
data_list.clear()
print(data_list)